package com.kuyun.base.service;

import java.util.List;

import com.kuyun.base.base.Page;
import com.kuyun.base.model.BasePrivilege;
import com.kuyun.base.model.ZtreeBean;

/**
 * 基础权限服务接口
 * 
 * @author 唐靖
 *
 * @date 2016年6月18日下午4:33:51
 *
 */
public interface BasePrivilegeService {
	/**
	 * 获取平台权限数列表
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月18日下午8:20:51
	 *
	 * @return
	 */
	public List<ZtreeBean> getPrivilegeTree() throws Exception;

	/**
	 * 添加权限
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月19日下午1:47:20
	 *
	 * @param basePrivilege
	 */
	public void createPrivilege(BasePrivilege basePrivilege) throws Exception;

	/**
	 * 根据ID查询一个权限（简单权限，不包括关联对象）
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午2:04:56
	 *
	 * @param parentId
	 * @return
	 */
	public BasePrivilege findSimplePrivilegeById(String parentId) throws Exception;

	/**
	 * 验证名称的唯一性
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午6:44:13
	 *
	 * @param name
	 * @param object
	 * @return
	 */
	public boolean checkName(BasePrivilege base) throws Exception;

	/**
	 * 验证编码的唯一性
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午7:04:21
	 *
	 * @param base
	 * @return
	 */
	public boolean checkCode(BasePrivilege base) throws Exception;

	/**
	 * 权限更新操作
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午8:57:53
	 *
	 * @param basePrivilege
	 */
	public void updatePrivilege(BasePrivilege basePrivilege);

	/**
	 * 获取所有的菜单权限列表
	 * 
	 * @author 唐靖
	 *
	 * @date 2016年6月25日下午9:32:47
	 *
	 * @return
	 */
	public List<BasePrivilegeService> loadAllMenuPri();

	/**
	 * 根据父id获取子权限列表
	 * @author 唐靖
	 *
	 * @date 2016年7月3日下午10:48:25
	 *
	 * @param parentId
	 * @param page 
	 * @return
	 */
	public Page<BasePrivilege> findPrivilegeByParentId(String parentId, Page<BasePrivilege> page);
}
